package com.mjk.manager.task.type;

import com.mjk.common.tools.springextend.BeeSpringBean;
import com.mjk.manager.task.type.normal.NormalTaskInvoker;
import com.mjk.manager.task.type.sqlhttp.SqlHttpTaskInvoker;
import lombok.Getter;

/**
 * 任务类型
 * 
 * @author Administrator
 *
 */
public enum TaskType {
	NORMAL("1", NormalTaskInvoker.class), SQLHTTP("2", SqlHttpTaskInvoker.class);

	@Getter
    final String type;
	final Class<?> clazz;

	TaskType(String type, Class<?> clazz) {
		this.type = type;
		this.clazz = clazz;
	}


    /**
	 * 更具类型值，获取具体执行得类
	 *
     */
	public static ITaskInvoker getTaskInvoker(String type) {
		for (TaskType taskType : TaskType.values()) {
			if (type.equals(taskType.type))
				return (ITaskInvoker) BeeSpringBean.getBean(taskType.clazz);
		}
		return null;
	}
}
